;--- include file created by h2incx v0.99.3, copyright 2005 japheth
;--- source file: d:\microsoft sdk\include\ShlObj.h, last modified: 7/4/2001 0:59
ifndef _SHLOBJ_H_
_SHLOBJ_H_	EQU	<>
ifndef _WINRESRC_
ifndef _WIN32_IE
_WIN32_IE	EQU	0501h
else 
if (_WIN32_IE lt 0400h) AND defined(_WIN32_WINNT) AND (_WIN32_WINNT ge 0500h)
;#error _WIN32_IE setting conflicts with _WIN32_WINNT setting 
endif 
endif 
endif 
ifndef SNDMSG
ifdef __cplusplus
SNDMSG	EQU	<:: SendMessage>
else 
SNDMSG	EQU	<SendMessage>
endif 
endif 
ifndef WINSHELLAPI
ifndef defined
defined macro x
ifdef x
  exitm <-1>
else
  exitm <0>
endif
endm
endif
if defined(_SHELL32_)
WINSHELLAPI	EQU	<>
else 
WINSHELLAPI	EQU	<DECLSPEC_IMPORT>
endif 
endif 
ifndef SHSTDAPI
if defined(_SHELL32_)
SHSTDAPI	EQU	<STDAPI>
SHSTDAPI_ macro type
	exitm <STDAPI_ ( type ) >
	endm
else 
SHSTDAPI	EQU	<EXTERN_C DECLSPEC_IMPORT HRESULT STDAPICALLTYPE>
SHSTDAPI_ macro type
	exitm <EXTERN_C DECLSPEC_IMPORT type STDAPICALLTYPE >
	endm
endif 
endif 
ifndef SHDOCAPI
if defined(_SHDOCVW_)
SHDOCAPI	EQU	<STDAPI>
SHDOCAPI_ macro type
	exitm <STDAPI_ ( type ) >
	endm
else 
SHDOCAPI	EQU	<EXTERN_C DECLSPEC_IMPORT HRESULT STDAPICALLTYPE>
SHDOCAPI_ macro type
	exitm <EXTERN_C DECLSPEC_IMPORT type STDAPICALLTYPE >
	endm
endif 
endif 
ifndef SHSTDDOCAPI
if defined(_SHDOCVW_) OR defined(_SHELL32_)
SHSTDDOCAPI	EQU	<STDAPI>
SHSTDDOCAPI_ macro type
	exitm <STDAPI_ ( type ) >
	endm
else 
SHSTDDOCAPI	EQU	<EXTERN_C DECLSPEC_IMPORT HRESULT STDAPICALLTYPE>
SHSTDDOCAPI_ macro type
	exitm <EXTERN_C DECLSPEC_IMPORT type STDAPICALLTYPE >
	endm
endif 
endif 
ifndef BROWSEUIAPI
if defined(_BROWSEUI_)
BROWSEUIAPI	EQU	<STDAPI>
BROWSEUIAPI_ macro type
	exitm <STDAPI_ ( type ) >
	endm
else 
BROWSEUIAPI	EQU	<EXTERN_C DECLSPEC_IMPORT HRESULT STDAPICALLTYPE>
BROWSEUIAPI_ macro type
	exitm <EXTERN_C DECLSPEC_IMPORT type STDAPICALLTYPE >
	endm
endif 
endif 
ifndef SHFOLDERAPI
if defined(_SHFOLDER_) OR defined(_SHELL32_)
SHFOLDERAPI	EQU	<STDAPI>
else 
SHFOLDERAPI	EQU	<EXTERN_C DECLSPEC_IMPORT HRESULT STDAPICALLTYPE>
endif 
endif 
	include ole2.inc
ifndef _PRSHT_H_
	include prsht.inc
endif 
ifndef _INC_COMMCTRL
	include commctrl.inc
endif 
ifndef INITGUID
	include shlguid.inc
endif 
	include pshpack1.inc
ifdef __cplusplus
;extern "C"
;{
endif 
	include shtypes.inc
	include shobjidl.inc
proto_SHGetMalloc typedef proto WINSTDCALLCONV  :ptr LPMALLOC
externdef stdcall _imp__SHGetMalloc@4: ptr proto_SHGetMalloc
SHGetMalloc equ <_imp__SHGetMalloc@4>
CMF_NORMAL	EQU	00000000h
CMF_DEFAULTONLY	EQU	00000001h
CMF_VERBSONLY	EQU	00000002h
CMF_EXPLORE	EQU	00000004h
CMF_NOVERBS	EQU	00000008h
CMF_CANRENAME	EQU	00000010h
CMF_NODEFAULT	EQU	00000020h
CMF_INCLUDESTATIC	EQU	00000040h
CMF_EXTENDEDVERBS	EQU	00000100h
CMF_RESERVED	EQU	0ffff0000h
GCS_VERBA	EQU	00000000h
GCS_HELPTEXTA	EQU	00000001h
GCS_VALIDATEA	EQU	00000002h
GCS_VERBW	EQU	00000004h
GCS_HELPTEXTW	EQU	00000005h
GCS_VALIDATEW	EQU	00000006h
GCS_UNICODE	EQU	00000004h
ifdef UNICODE
GCS_VERB	EQU	<GCS_VERBW>
GCS_HELPTEXT	EQU	<GCS_HELPTEXTW>
GCS_VALIDATE	EQU	<GCS_VALIDATEW>
else 
GCS_VERB	EQU	<GCS_VERBA>
GCS_HELPTEXT	EQU	<GCS_HELPTEXTA>
GCS_VALIDATE	EQU	<GCS_VALIDATEA>
endif 
CMDSTR_NEWFOLDERA	EQU	<"NewFolder">
CMDSTR_VIEWLISTA	EQU	<"ViewList">
CMDSTR_VIEWDETAILSA	EQU	<"ViewDetails">
CMDSTR_NEWFOLDERW	EQU	<L("NewFolder")>
CMDSTR_VIEWLISTW	EQU	<L("ViewList")>
CMDSTR_VIEWDETAILSW	EQU	<L("ViewDetails")>
ifdef UNICODE
CMDSTR_NEWFOLDER	EQU	<CMDSTR_NEWFOLDERW>
CMDSTR_VIEWLIST	EQU	<CMDSTR_VIEWLISTW>
CMDSTR_VIEWDETAILS	EQU	<CMDSTR_VIEWDETAILSW>
else 
CMDSTR_NEWFOLDER	EQU	<CMDSTR_NEWFOLDERA>
CMDSTR_VIEWLIST	EQU	<CMDSTR_VIEWLISTA>
CMDSTR_VIEWDETAILS	EQU	<CMDSTR_VIEWDETAILSA>
endif 
CMIC_MASK_HOTKEY	EQU	<SEE_MASK_HOTKEY>
CMIC_MASK_ICON	EQU	<SEE_MASK_ICON>
CMIC_MASK_FLAG_NO_UI	EQU	<SEE_MASK_FLAG_NO_UI>
CMIC_MASK_UNICODE	EQU	<SEE_MASK_UNICODE>
CMIC_MASK_NO_CONSOLE	EQU	<SEE_MASK_NO_CONSOLE>
CMIC_MASK_HASLINKNAME	EQU	<SEE_MASK_HASLINKNAME>
CMIC_MASK_FLAG_SEP_VDM	EQU	<SEE_MASK_FLAG_SEPVDM>
CMIC_MASK_HASTITLE	EQU	<SEE_MASK_HASTITLE>
CMIC_MASK_ASYNCOK	EQU	<SEE_MASK_ASYNCOK>
if (_WIN32_IE ge 0501h)
CMIC_MASK_SHIFT_DOWN	EQU	10000000h
CMIC_MASK_CONTROL_DOWN	EQU	20000000h
endif 
if (_WIN32_IE ge 0560h)
CMIC_MASK_FLAG_LOG_USAGE	EQU	<SEE_MASK_FLAG_LOG_USAGE>
endif 
if (_WIN32_IE ge 0400h)
CMIC_MASK_PTINVOKE	EQU	20000000h
endif 
	include pshpack8.inc
CMINVOKECOMMANDINFO	struct
cbSize	DWORD	?
fMask	DWORD	?
hwnd	HWND	?
lpVerb	LPSTR	?
lpParameters	LPSTR	?
lpDirectory	LPSTR	?
nShow	DWORD	?
dwHotKey	DWORD	?
hIcon	HANDLE	?
CMINVOKECOMMANDINFO	ends

LPCMINVOKECOMMANDINFO typedef ptr CMINVOKECOMMANDINFO

CMINVOKECOMMANDINFOEX	struct
cbSize	DWORD	?
fMask	DWORD	?
hwnd	HWND	?
lpVerb	LPSTR	?
lpParameters	LPSTR	?
lpDirectory	LPSTR	?
nShow	DWORD	?
dwHotKey	DWORD	?
hIcon	HANDLE	?
lpTitle	LPSTR	?
lpVerbW	LPWSTR	?
lpParametersW	LPWSTR	?
lpDirectoryW	LPWSTR	?
lpTitleW	LPWSTR	?
if (_WIN32_IE ge 0400h)
ptInvoke	POINT	<>
endif 
CMINVOKECOMMANDINFOEX	ends

LPCMINVOKECOMMANDINFOEX typedef ptr CMINVOKECOMMANDINFOEX

	include poppack.inc
;#undef INTERFACE 
INTERFACE	EQU	<IContextMenu>
DECLARE_INTERFACE_( IContextMenu , IUnknown)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr ptr 
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  QueryContextMenu , :HMENU, :DWORD, :DWORD, :DWORD, :DWORD
STDMETHOD  InvokeCommand , :LPCMINVOKECOMMANDINFO
STDMETHOD  GetCommandString , :UINT_PTR, :DWORD, :ptr DWORD, :LPSTR, :DWORD
;}
DECLARE_INTERFACE__END

LPCONTEXTMENU typedef ptr IContextMenu
;#undef INTERFACE 
INTERFACE	EQU	<IContextMenu2>
DECLARE_INTERFACE_( IContextMenu2 , IContextMenu)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr ptr 
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  QueryContextMenu , :HMENU, :DWORD, :DWORD, :DWORD, :DWORD
STDMETHOD  InvokeCommand , :LPCMINVOKECOMMANDINFO
STDMETHOD  GetCommandString , :UINT_PTR, :DWORD, :ptr DWORD, :LPSTR, :DWORD
STDMETHOD  HandleMenuMsg , :DWORD, :WPARAM, :LPARAM
;}
DECLARE_INTERFACE__END

LPCONTEXTMENU2 typedef ptr IContextMenu2
;#undef INTERFACE 
INTERFACE	EQU	<IContextMenu3>
DECLARE_INTERFACE_( IContextMenu3 , IContextMenu2)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr ptr 
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  QueryContextMenu , :HMENU, :DWORD, :DWORD, :DWORD, :DWORD
STDMETHOD  InvokeCommand , :LPCMINVOKECOMMANDINFO
STDMETHOD  GetCommandString , :UINT_PTR, :DWORD, :ptr DWORD, :LPSTR, :DWORD
STDMETHOD  HandleMenuMsg , :DWORD, :WPARAM, :LPARAM
STDMETHOD  HandleMenuMsg2 , :DWORD, :WPARAM, :LPARAM, :ptr LRESULT
;}
DECLARE_INTERFACE__END

LPCONTEXTMENU3 typedef ptr IContextMenu3
if (_WIN32_IE ge 0500h)
;#undef INTERFACE 
INTERFACE	EQU	<IPersistFolder3>
CSIDL_FLAG_PFTI_TRACKTARGET	EQU	<CSIDL_FLAG_DONT_VERIFY>
	include pshpack8.inc
PERSIST_FOLDER_TARGET_INFO	struct
pidlTargetFolder	LPITEMIDLIST	?
szTargetParsingName	WCHAR MAX_PATH dup (?)
szNetworkProvider	WCHAR MAX_PATH dup (?)
dwAttributes	DWORD	?
csidl	DWORD	?
PERSIST_FOLDER_TARGET_INFO	ends

	include poppack.inc
DECLARE_INTERFACE_( IPersistFolder3 , IPersistFolder2)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr ptr 
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  GetClassID , :LPCLSID
STDMETHOD  Initialize , :LPCITEMIDLIST
STDMETHOD  GetCurFolder , :ptr LPITEMIDLIST
STDMETHOD  InitializeEx , :ptr IBindCtx, :LPCITEMIDLIST, :ptr PERSIST_FOLDER_TARGET_INFO
STDMETHOD  GetFolderTargetInfo , :ptr PERSIST_FOLDER_TARGET_INFO
;}
DECLARE_INTERFACE__END

endif 
GIL_OPENICON	EQU	0001h
GIL_FORSHELL	EQU	0002h
GIL_ASYNC	EQU	0020h
GIL_DEFAULTICON	EQU	0040h
GIL_FORSHORTCUT	EQU	0080h
GIL_SIMULATEDOC	EQU	0001h
GIL_PERINSTANCE	EQU	0002h
GIL_PERCLASS	EQU	0004h
GIL_NOTFILENAME	EQU	0008h
GIL_DONTCACHE	EQU	0010h
;#undef INTERFACE 
INTERFACE	EQU	<IExtractIconA>
DECLARE_INTERFACE_( IExtractIconA , IUnknown)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr ptr 
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  GetIconLocation , :DWORD, :LPSTR, :DWORD, :ptr DWORD, :ptr DWORD
STDMETHOD  Extract , :LPSTR, :DWORD, :ptr HICON, :ptr HICON, :DWORD
;}
DECLARE_INTERFACE__END

LPEXTRACTICONA typedef ptr IExtractIconA
;#undef INTERFACE 
INTERFACE	EQU	<IExtractIconW>
DECLARE_INTERFACE_( IExtractIconW , IUnknown)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr ptr 
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  GetIconLocation , :DWORD, :LPWSTR, :DWORD, :ptr DWORD, :ptr DWORD
STDMETHOD  Extract , :LPWSTR, :DWORD, :ptr HICON, :ptr HICON, :DWORD
;}
DECLARE_INTERFACE__END

LPEXTRACTICONW typedef ptr IExtractIconW
ifdef UNICODE
IExtractIcon	EQU	<IExtractIconW>
IExtractIconVtbl	EQU	<IExtractIconWVtbl>
LPEXTRACTICON	EQU	<LPEXTRACTICONW>
else 
IExtractIcon	EQU	<IExtractIconA>
IExtractIconVtbl	EQU	<IExtractIconAVtbl>
LPEXTRACTICON	EQU	<LPEXTRACTICONA>
endif 
;#undef INTERFACE 
INTERFACE	EQU	<IShellIcon>
DECLARE_INTERFACE_( IShellIcon , IUnknown)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr ptr 
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  GetIconOf , :LPCITEMIDLIST, :DWORD, :LPINT
;}
DECLARE_INTERFACE__END

LPSHELLICON typedef ptr IShellIcon
;#undef INTERFACE 
INTERFACE	EQU	<IShellIconOverlayIdentifier>
DECLARE_INTERFACE_( IShellIconOverlayIdentifier , IUnknown)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr ptr 
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  IsMemberOf , :LPWSTR, :DWORD
STDMETHOD  GetOverlayInfo , :LPWSTR, :DWORD, :ptr DWORD, :ptr DWORD
STDMETHOD  GetPriority , :ptr DWORD
;}
DECLARE_INTERFACE__END

ISIOI_ICONFILE	EQU	00000001h
ISIOI_ICONINDEX	EQU	00000002h
;#undef INTERFACE 
INTERFACE	EQU	<IShellIconOverlay>
DECLARE_INTERFACE_( IShellIconOverlay , IUnknown)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr ptr 
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  GetOverlayIndex , :LPCITEMIDLIST, :ptr DWORD
STDMETHOD  GetOverlayIconIndex , :LPCITEMIDLIST, :ptr DWORD
;}
DECLARE_INTERFACE__END

OI_ASYNC	EQU	0FFFFEEEEh
IDO_SHGIOI_SHARE	EQU	0FFFFFFFh
IDO_SHGIOI_LINK	EQU	0FFFFFFEh
IDO_SHGIOI_SLOWFILE	EQU	0FFFFFFFDh
proto_SHGetIconOverlayIndexA typedef proto WINSTDCALLCONV  :LPSTR, :DWORD
externdef stdcall _imp__SHGetIconOverlayIndexA@8: ptr proto_SHGetIconOverlayIndexA
SHGetIconOverlayIndexA equ <_imp__SHGetIconOverlayIndexA@8>
proto_SHGetIconOverlayIndexW typedef proto WINSTDCALLCONV  :LPWSTR, :DWORD
externdef stdcall _imp__SHGetIconOverlayIndexW@8: ptr proto_SHGetIconOverlayIndexW
SHGetIconOverlayIndexW equ <_imp__SHGetIconOverlayIndexW@8>
ifdef UNICODE
SHGetIconOverlayIndex	EQU	<SHGetIconOverlayIndexW>
else 
SHGetIconOverlayIndex	EQU	<SHGetIconOverlayIndexA>
endif 
if (_WIN32_IE ge 0400h)
SHELL_LINK_DATA_FLAGS typedef DWORD
SLDF_HAS_ID_LIST = 00000001h 
SLDF_HAS_LINK_INFO = 00000002h 
SLDF_HAS_NAME = 00000004h 
SLDF_HAS_RELPATH = 00000008h 
SLDF_HAS_WORKINGDIR = 00000010h 
SLDF_HAS_ARGS = 00000020h 
SLDF_HAS_ICONLOCATION = 00000040h 
SLDF_UNICODE = 00000080h 
SLDF_FORCE_NO_LINKINFO = 00000100h 
SLDF_HAS_EXP_SZ = 00000200h 
SLDF_RUN_IN_SEPARATE = 00000400h 
SLDF_HAS_LOGO3ID = 00000800h 
SLDF_HAS_DARWINID = 00001000h 
SLDF_RUNAS_USER = 00002000h 
SLDF_HAS_EXP_ICON_SZ = 00004000h 
SLDF_NO_PIDL_ALIAS = 00008000h 
SLDF_FORCE_UNCNAME = 00010000h 
SLDF_RUN_WITH_SHIMLAYER = 00020000h 
SLDF_RESERVED = 80000000h 

DATABLOCK_HEADER	struct
cbSize	DWORD	?
dwSignature	DWORD	?
DATABLOCK_HEADER	ends

LPDATABLOCK_HEADER typedef ptr DATABLOCK_HEADER
LPDBLIST typedef ptr DATABLOCK_HEADER

NT_CONSOLE_PROPS	struct
ifdef __cplusplus
dbh	DATABLOCK_HEADER	<>
else 
	DATABLOCK_HEADER	<>
endif 
wFillAttribute	WORD	?
wPopupFillAttribute	WORD	?
dwScreenBufferSize	COORD	<>
dwWindowSize	COORD	<>
dwWindowOrigin	COORD	<>
nFont	DWORD	?
nInputBufferSize	DWORD	?
dwFontSize	COORD	<>
uFontFamily	DWORD	?
uFontWeight	DWORD	?
FaceName	WCHAR LF_FACESIZE dup (?)
uCursorSize	DWORD	?
bFullScreen	BOOL	?
bQuickEdit	BOOL	?
bInsertMode	BOOL	?
bAutoPosition	BOOL	?
uHistoryBufferSize	DWORD	?
uNumberOfHistoryBuffers	DWORD	?
bHistoryNoDup	BOOL	?
ColorTable	COLORREF 16 dup (?)
NT_CONSOLE_PROPS	ends

LPNT_CONSOLE_PROPS typedef ptr NT_CONSOLE_PROPS

NT_CONSOLE_PROPS_SIG	EQU	0A0000002h
NT_FE_CONSOLE_PROPS	struct
ifdef __cplusplus
dbh	DATABLOCK_HEADER	<>
else 
	DATABLOCK_HEADER	<>
endif 
uCodePage	DWORD	?
NT_FE_CONSOLE_PROPS	ends

LPNT_FE_CONSOLE_PROPS typedef ptr NT_FE_CONSOLE_PROPS

NT_FE_CONSOLE_PROPS_SIG	EQU	0A0000004h
if (_WIN32_IE ge 0500h)
EXP_DARWIN_LINK	struct
ifdef __cplusplus
dbh	DATABLOCK_HEADER	<>
else 
DATABLOCK_HEADER	<>
endif 
szDarwinID	CHAR MAX_PATH dup (?)
szwDarwinID	WCHAR MAX_PATH dup (?)
EXP_DARWIN_LINK	ends

LPEXP_DARWIN_LINK typedef ptr EXP_DARWIN_LINK

EXP_DARWIN_ID_SIG	EQU	0A0000006h
EXP_LOGO3_ID_SIG	EQU	0A0000007h
endif 
EXP_SPECIAL_FOLDER_SIG	EQU	0A0000005h
EXP_SPECIAL_FOLDER	struct
cbSize	DWORD	?
dwSignature	DWORD	?
idSpecialFolder	DWORD	?
cbOffset	DWORD	?
EXP_SPECIAL_FOLDER	ends

LPEXP_SPECIAL_FOLDER typedef ptr EXP_SPECIAL_FOLDER

EXP_SZ_LINK	struct
cbSize	DWORD	?
dwSignature	DWORD	?
szTarget	CHAR MAX_PATH dup (?)
swzTarget	WCHAR MAX_PATH dup (?)
EXP_SZ_LINK	ends

LPEXP_SZ_LINK typedef ptr EXP_SZ_LINK

EXP_SZ_LINK_SIG	EQU	0A0000001h
EXP_SZ_ICON_SIG	EQU	0A0000007h
;#undef INTERFACE 
INTERFACE	EQU	<IShellLinkDataList>
DECLARE_INTERFACE_( IShellLinkDataList , IUnknown)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr ptr 
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  AddDataBlock , :ptr 
STDMETHOD  CopyDataBlock , :DWORD, :ptr ptr 
STDMETHOD  RemoveDataBlock , :DWORD
STDMETHOD  GetFlags , :ptr DWORD
STDMETHOD  SetFlags , :DWORD
;}
DECLARE_INTERFACE__END

endif 
if (_WIN32_IE ge 0500h)
;#undef INTERFACE 
INTERFACE	EQU	<IResolveShellLink>
DECLARE_INTERFACE_( IResolveShellLink , IUnknown)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr ptr 
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  ResolveShellLink , :ptr IUnknown, :HWND, :DWORD
;}
DECLARE_INTERFACE__END

endif 
ifdef _INC_SHELLAPI
;#undef INTERFACE 
INTERFACE	EQU	<IShellExecuteHookA>
DECLARE_INTERFACE_( IShellExecuteHookA , IUnknown)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr ptr 
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  Execute , :LPSHELLEXECUTEINFOA
;}
DECLARE_INTERFACE__END

;#undef INTERFACE 
INTERFACE	EQU	<IShellExecuteHookW>
DECLARE_INTERFACE_( IShellExecuteHookW , IUnknown)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr ptr 
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  Execute , :LPSHELLEXECUTEINFOW
;}
DECLARE_INTERFACE__END

ifdef UNICODE
IShellExecuteHook	EQU	<IShellExecuteHookW>
IShellExecuteHookVtbl	EQU	<IShellExecuteHookWVtbl>
else 
IShellExecuteHook	EQU	<IShellExecuteHookA>
IShellExecuteHookVtbl	EQU	<IShellExecuteHookAVtbl>
endif 
endif 
;#undef INTERFACE 
INTERFACE	EQU	<IURLSearchHook>
DECLARE_INTERFACE_( IURLSearchHook , IUnknown)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr ptr 
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  Translate , :LPWSTR, :DWORD
;}
DECLARE_INTERFACE__END

;#undef INTERFACE 
INTERFACE	EQU	<ISearchContext>
DECLARE_INTERFACE_( ISearchContext , IUnknown)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr ptr 
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  GetSearchUrl , :ptr BSTR
STDMETHOD  GetSearchText , :ptr BSTR
STDMETHOD  GetSearchStyle , :ptr DWORD
;}
DECLARE_INTERFACE__END

;#undef INTERFACE 
INTERFACE	EQU	<IURLSearchHook2>
DECLARE_INTERFACE_( IURLSearchHook2 , IURLSearchHook)
;{
STDMETHOD  TranslateWithSearchContext , :LPWSTR, :DWORD, :ptr ISearchContext
;}
DECLARE_INTERFACE__END

;#undef INTERFACE 
INTERFACE	EQU	<INewShortcutHookA>
DECLARE_INTERFACE_( INewShortcutHookA , IUnknown)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr ptr 
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  SetReferent , :LPSTR, :HWND
STDMETHOD  GetReferent , :LPSTR, :DWORD
STDMETHOD  SetFolder , :LPSTR
STDMETHOD  GetFolder , :LPSTR, :DWORD
STDMETHOD  GetName , :LPSTR, :DWORD
STDMETHOD  GetExtension , :LPSTR, :DWORD
;}
DECLARE_INTERFACE__END

;#undef INTERFACE 
INTERFACE	EQU	<INewShortcutHookW>
DECLARE_INTERFACE_( INewShortcutHookW , IUnknown)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr ptr 
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  SetReferent , :LPWSTR, :HWND
STDMETHOD  GetReferent , :LPWSTR, :DWORD
STDMETHOD  SetFolder , :LPWSTR
STDMETHOD  GetFolder , :LPWSTR, :DWORD
STDMETHOD  GetName , :LPWSTR, :DWORD
STDMETHOD  GetExtension , :LPWSTR, :DWORD
;}
DECLARE_INTERFACE__END

ifdef UNICODE
INewShortcutHook	EQU	<INewShortcutHookW>
INewShortcutHookVtbl	EQU	<INewShortcutHookWVtbl>
else 
INewShortcutHook	EQU	<INewShortcutHookA>
INewShortcutHookVtbl	EQU	<INewShortcutHookAVtbl>
endif 
ifndef FO_MOVE
FO_MOVE	EQU	0001h
FO_COPY	EQU	0002h
FO_DELETE	EQU	0003h
FO_RENAME	EQU	0004h
FOF_MULTIDESTFILES	EQU	0001h
FOF_CONFIRMMOUSE	EQU	0002h
FOF_SILENT	EQU	0004h
FOF_RENAMEONCOLLISION	EQU	0008h
FOF_NOCONFIRMATION	EQU	0010h
FOF_WANTMAPPINGHANDLE	EQU	0020h
FOF_ALLOWUNDO	EQU	0040h
FOF_FILESONLY	EQU	0080h
FOF_SIMPLEPROGRESS	EQU	0100h
FOF_NOCONFIRMMKDIR	EQU	0200h
FOF_NOERRORUI	EQU	0400h
FOF_NOCOPYSECURITYATTRIBS	EQU	0800h
FOF_NORECURSION	EQU	1000h
if (_WIN32_IE ge 500h)
FOF_NO_CONNECTED_ELEMENTS	EQU	2000h
FOF_WANTNUKEWARNING	EQU	4000h
endif 
if (_WIN32_WINNT ge 0501h)
FOF_NORECURSEREPARSE	EQU	8000h
endif 
FILEOP_FLAGS typedef WORD
PO_DELETE	EQU	0013h
PO_RENAME	EQU	0014h
PO_PORTCHANGE	EQU	0020h
PO_REN_PORT	EQU	0034h
PRINTEROP_FLAGS typedef DWORD
endif 
;#undef INTERFACE 
INTERFACE	EQU	<ICopyHookA>
DECLARE_INTERFACE_( ICopyHookA , IUnknown)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr ptr 
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD_  UINT , CopyCallback , :HWND, :DWORD, :DWORD, :LPSTR, :DWORD, :LPSTR, :DWORD
;}
DECLARE_INTERFACE__END

LPCOPYHOOKA typedef ptr ICopyHookA
;#undef INTERFACE 
INTERFACE	EQU	<ICopyHookW>
DECLARE_INTERFACE_( ICopyHookW , IUnknown)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr ptr 
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD_  UINT , CopyCallback , :HWND, :DWORD, :DWORD, :LPWSTR, :DWORD, :LPWSTR, :DWORD
;}
DECLARE_INTERFACE__END

LPCOPYHOOKW typedef ptr ICopyHookW
ifdef UNICODE
ICopyHook	EQU	<ICopyHookW>
ICopyHookVtbl	EQU	<ICopyHookWVtbl>
LPCOPYHOOK	EQU	<LPCOPYHOOKW>
else 
ICopyHook	EQU	<ICopyHookA>
ICopyHookVtbl	EQU	<ICopyHookAVtbl>
LPCOPYHOOK	EQU	<LPCOPYHOOKA>
endif 
;#undef INTERFACE 
INTERFACE	EQU	<IFileViewerSite>
DECLARE_INTERFACE_( IFileViewerSite , IUnknown)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr ptr 
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  SetPinnedWindow , :HWND
STDMETHOD  GetPinnedWindow , :ptr HWND
;}
DECLARE_INTERFACE__END

LPFILEVIEWERSITE typedef ptr IFileViewerSite
	include pshpack8.inc
FVSHOWINFO	struct
cbSize	DWORD	?
hwndOwner	HWND	?
iShow	DWORD	?
dwFlags	DWORD	?
rect	RECT	<>
punkRel	DWORD	?
strNewFile	OLECHAR MAX_PATH dup (?)
FVSHOWINFO	ends

LPFVSHOWINFO typedef ptr FVSHOWINFO

	include poppack.inc
FVSIF_RECT	EQU	00000001h
FVSIF_PINNED	EQU	00000002h
FVSIF_NEWFAILED	EQU	08000000h
FVSIF_NEWFILE	EQU	80000000h
FVSIF_CANVIEWIT	EQU	40000000h
;#undef INTERFACE 
INTERFACE	EQU	<IFileViewerA>
DECLARE_INTERFACE( IFileViewerA)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr ptr 
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  ShowInitialize , :LPFILEVIEWERSITE
STDMETHOD  Show , :LPFVSHOWINFO
STDMETHOD  PrintTo , :LPSTR, :BOOL
;}
DECLARE_INTERFACE_END

LPFILEVIEWERA typedef ptr IFileViewerA
;#undef INTERFACE 
INTERFACE	EQU	<IFileViewerW>
DECLARE_INTERFACE( IFileViewerW)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr ptr 
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  ShowInitialize , :LPFILEVIEWERSITE
STDMETHOD  Show , :LPFVSHOWINFO
STDMETHOD  PrintTo , :LPWSTR, :BOOL
;}
DECLARE_INTERFACE_END

LPFILEVIEWERW typedef ptr IFileViewerW
ifdef UNICODE
IFileViewer	EQU	<IFileViewerW>
LPFILEVIEWER	EQU	<LPFILEVIEWERW>
else 
IFileViewer	EQU	<IFileViewerA>
LPFILEVIEWER	EQU	<LPFILEVIEWERA>
endif 
FCIDM_SHVIEWFIRST	EQU	0000h
FCIDM_SHVIEWLAST	EQU	7fffh
FCIDM_BROWSERFIRST	EQU	0a000h
FCIDM_BROWSERLAST	EQU	0bf00h
FCIDM_GLOBALFIRST	EQU	8000h
FCIDM_GLOBALLAST	EQU	9fffh
FCIDM_MENU_FILE	EQU	<( FCIDM_GLOBALFIRST + 0000h )>
FCIDM_MENU_EDIT	EQU	<( FCIDM_GLOBALFIRST + 0040h )>
FCIDM_MENU_VIEW	EQU	<( FCIDM_GLOBALFIRST + 0080h )>
FCIDM_MENU_VIEW_SEP_OPTIONS	EQU	<( FCIDM_GLOBALFIRST + 0081h )>
FCIDM_MENU_TOOLS	EQU	<( FCIDM_GLOBALFIRST + 00c0h )>
FCIDM_MENU_TOOLS_SEP_GOTO	EQU	<( FCIDM_GLOBALFIRST + 00c1h )>
FCIDM_MENU_HELP	EQU	<( FCIDM_GLOBALFIRST + 0100h )>
FCIDM_MENU_FIND	EQU	<( FCIDM_GLOBALFIRST + 0140h )>
FCIDM_MENU_EXPLORE	EQU	<( FCIDM_GLOBALFIRST + 0150h )>
FCIDM_MENU_FAVORITES	EQU	<( FCIDM_GLOBALFIRST + 0170h )>
FCIDM_TOOLBAR	EQU	<( FCIDM_BROWSERFIRST + 0 )>
FCIDM_STATUS	EQU	<( FCIDM_BROWSERFIRST + 1 )>
if (_WIN32_IE ge 0400h)
IDC_OFFLINE_HAND	EQU	103
endif 
CDBOSC_SETFOCUS	EQU	00000000h
CDBOSC_KILLFOCUS	EQU	00000001h
CDBOSC_SELCHANGE	EQU	00000002h
CDBOSC_RENAME	EQU	00000003h
CDBOSC_STATECHANGE	EQU	00000004h
;#undef INTERFACE 
INTERFACE	EQU	<ICommDlgBrowser>
DECLARE_INTERFACE_( ICommDlgBrowser , IUnknown)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr ptr 
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  OnDefaultCommand , :ptr IShellView
STDMETHOD  OnStateChange , :ptr IShellView, :DWORD
STDMETHOD  IncludeObject , :ptr IShellView, :LPCITEMIDLIST
;}
DECLARE_INTERFACE__END

LPCOMMDLGBROWSER typedef ptr ICommDlgBrowser
CDB2N_CONTEXTMENU_DONE	EQU	00000001h
CDB2N_CONTEXTMENU_START	EQU	00000002h
CDB2GVF_SHOWALLFILES	EQU	00000001h
;#undef INTERFACE 
INTERFACE	EQU	<ICommDlgBrowser2>
DECLARE_INTERFACE_( ICommDlgBrowser2 , IUnknown)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr ptr 
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  OnDefaultCommand , :ptr IShellView
STDMETHOD  OnStateChange , :ptr IShellView, :DWORD
STDMETHOD  IncludeObject , :ptr IShellView, :LPCITEMIDLIST
STDMETHOD  Notify , :ptr IShellView, :DWORD
STDMETHOD  GetDefaultMenuText , :ptr IShellView, :ptr WCHAR, :DWORD
STDMETHOD  GetViewFlags , :ptr DWORD
;}
DECLARE_INTERFACE__END

LPCOMMDLGBROWSER2 typedef ptr ICommDlgBrowser2
proto_SHGetPathFromIDListA typedef proto WINSTDCALLCONV  :LPCITEMIDLIST, :LPSTR
externdef stdcall _imp__SHGetPathFromIDListA@8: ptr proto_SHGetPathFromIDListA
SHGetPathFromIDListA equ <_imp__SHGetPathFromIDListA@8>
proto_SHGetPathFromIDListW typedef proto WINSTDCALLCONV  :LPCITEMIDLIST, :LPWSTR
externdef stdcall _imp__SHGetPathFromIDListW@8: ptr proto_SHGetPathFromIDListW
SHGetPathFromIDListW equ <_imp__SHGetPathFromIDListW@8>
ifdef UNICODE
SHGetPathFromIDList	EQU	<SHGetPathFromIDListW>
else 
SHGetPathFromIDList	EQU	<SHGetPathFromIDListA>
endif 
proto_SHCreateDirectoryExA typedef proto WINSTDCALLCONV  :HWND, :LPSTR, :ptr SECURITY_ATTRIBUTES
externdef stdcall _imp__SHCreateDirectoryExA@12: ptr proto_SHCreateDirectoryExA
SHCreateDirectoryExA equ <_imp__SHCreateDirectoryExA@12>
proto_SHCreateDirectoryExW typedef proto WINSTDCALLCONV  :HWND, :LPWSTR, :ptr SECURITY_ATTRIBUTES
externdef stdcall _imp__SHCreateDirectoryExW@12: ptr proto_SHCreateDirectoryExW
SHCreateDirectoryExW equ <_imp__SHCreateDirectoryExW@12>
ifdef UNICODE
SHCreateDirectoryEx	EQU	<SHCreateDirectoryExW>
else 
SHCreateDirectoryEx	EQU	<SHCreateDirectoryExA>
endif 
proto_SHOpenFolderAndSelectItems typedef proto WINSTDCALLCONV  :LPCITEMIDLIST, :DWORD, :ptr LPCITEMIDLIST, :DWORD
externdef stdcall _imp__SHOpenFolderAndSelectItems@16: ptr proto_SHOpenFolderAndSelectItems
SHOpenFolderAndSelectItems equ <_imp__SHOpenFolderAndSelectItems@16>
REGSTR_PATH_SPECIAL_FOLDERS	EQU	<REGSTR_PATH_EXPLORER TEXT ( "\Shell Folders" )>
CSIDL_DESKTOP	EQU	0000h
CSIDL_INTERNET	EQU	0001h
CSIDL_PROGRAMS	EQU	0002h
CSIDL_CONTROLS	EQU	0003h
CSIDL_PRINTERS	EQU	0004h
CSIDL_PERSONAL	EQU	0005h
CSIDL_FAVORITES	EQU	0006h
CSIDL_STARTUP	EQU	0007h
CSIDL_RECENT	EQU	0008h
CSIDL_SENDTO	EQU	0009h
CSIDL_BITBUCKET	EQU	000ah
CSIDL_STARTMENU	EQU	000bh
CSIDL_MYDOCUMENTS	EQU	000ch
CSIDL_MYMUSIC	EQU	000dh
CSIDL_MYVIDEO	EQU	000eh
CSIDL_DESKTOPDIRECTORY	EQU	0010h
CSIDL_DRIVES	EQU	0011h
CSIDL_NETWORK	EQU	0012h
CSIDL_NETHOOD	EQU	0013h
CSIDL_FONTS	EQU	0014h
CSIDL_TEMPLATES	EQU	0015h
CSIDL_COMMON_STARTMENU	EQU	0016h
CSIDL_COMMON_PROGRAMS	EQU	0017h
CSIDL_COMMON_STARTUP	EQU	0018h
CSIDL_COMMON_DESKTOPDIRECTORY	EQU	0019h
CSIDL_APPDATA	EQU	001ah
CSIDL_PRINTHOOD	EQU	001bh
ifndef CSIDL_LOCAL_APPDATA
CSIDL_LOCAL_APPDATA	EQU	001ch
endif 
CSIDL_ALTSTARTUP	EQU	001dh
CSIDL_COMMON_ALTSTARTUP	EQU	001eh
CSIDL_COMMON_FAVORITES	EQU	001fh
ifndef _SHFOLDER_H_
CSIDL_INTERNET_CACHE	EQU	0020h
CSIDL_COOKIES	EQU	0021h
CSIDL_HISTORY	EQU	0022h
CSIDL_COMMON_APPDATA	EQU	0023h
CSIDL_WINDOWS	EQU	0024h
CSIDL_SYSTEM	EQU	0025h
CSIDL_PROGRAM_FILES	EQU	0026h
CSIDL_MYPICTURES	EQU	0027h
endif 
CSIDL_PROFILE	EQU	0028h
CSIDL_SYSTEMX86	EQU	0029h
CSIDL_PROGRAM_FILESX86	EQU	002ah
ifndef _SHFOLDER_H_
CSIDL_PROGRAM_FILES_COMMON	EQU	002bh
endif 
CSIDL_PROGRAM_FILES_COMMONX86	EQU	002ch
CSIDL_COMMON_TEMPLATES	EQU	002dh
ifndef _SHFOLDER_H_
CSIDL_COMMON_DOCUMENTS	EQU	002eh
CSIDL_COMMON_ADMINTOOLS	EQU	002fh
CSIDL_ADMINTOOLS	EQU	0030h
endif 
CSIDL_CONNECTIONS	EQU	0031h
CSIDL_COMMON_MUSIC	EQU	0035h
CSIDL_COMMON_PICTURES	EQU	0036h
CSIDL_COMMON_VIDEO	EQU	0037h
CSIDL_RESOURCES	EQU	0038h
ifndef _SHFOLDER_H_
CSIDL_RESOURCES_LOCALIZED	EQU	0039h
endif 
CSIDL_COMMON_OEM_LINKS	EQU	003ah
CSIDL_CDBURN_AREA	EQU	003bh
CSIDL_COMPUTERSNEARME	EQU	003dh
ifndef _SHFOLDER_H_
CSIDL_FLAG_CREATE	EQU	8000h
endif 
CSIDL_FLAG_DONT_VERIFY	EQU	4000h
CSIDL_FLAG_NO_ALIAS	EQU	1000h
CSIDL_FLAG_PER_USER_INIT	EQU	0800h
CSIDL_FLAG_MASK	EQU	0FF00h
proto_SHGetSpecialFolderLocation typedef proto WINSTDCALLCONV  :HWND, :DWORD, :ptr LPITEMIDLIST
externdef stdcall _imp__SHGetSpecialFolderLocation@12: ptr proto_SHGetSpecialFolderLocation
SHGetSpecialFolderLocation equ <_imp__SHGetSpecialFolderLocation@12>
if (_WIN32_IE ge 0400h)
proto_SHGetSpecialFolderPathA typedef proto WINSTDCALLCONV  :HWND, :LPSTR, :DWORD, :BOOL
externdef stdcall _imp__SHGetSpecialFolderPathA@16: ptr proto_SHGetSpecialFolderPathA
SHGetSpecialFolderPathA equ <_imp__SHGetSpecialFolderPathA@16>
proto_SHGetSpecialFolderPathW typedef proto WINSTDCALLCONV  :HWND, :LPWSTR, :DWORD, :BOOL
externdef stdcall _imp__SHGetSpecialFolderPathW@16: ptr proto_SHGetSpecialFolderPathW
SHGetSpecialFolderPathW equ <_imp__SHGetSpecialFolderPathW@16>
ifdef UNICODE
SHGetSpecialFolderPath	EQU	<SHGetSpecialFolderPathW>
else 
SHGetSpecialFolderPath	EQU	<SHGetSpecialFolderPathA>
endif 
if (_WIN32_IE ge 0500h)
SHGFP_TYPE typedef DWORD
SHGFP_TYPE_CURRENT = 0 
SHGFP_TYPE_DEFAULT = 1 

SHGetFolderPathA proto  :HWND, :DWORD, :HANDLE, :DWORD, :LPSTR
SHGetFolderPathW proto  :HWND, :DWORD, :HANDLE, :DWORD, :LPWSTR
ifdef UNICODE
SHGetFolderPath	EQU	<SHGetFolderPathW>
else 
SHGetFolderPath	EQU	<SHGetFolderPathA>
endif 
proto_SHGetFolderLocation typedef proto WINSTDCALLCONV  :HWND, :DWORD, :HANDLE, :DWORD, :ptr LPITEMIDLIST
externdef stdcall _imp__SHGetFolderLocation@20: ptr proto_SHGetFolderLocation
SHGetFolderLocation equ <_imp__SHGetFolderLocation@20>
SHGetFolderPathAndSubDirA proto  :HWND, :DWORD, :HANDLE, :DWORD, :LPSTR, :LPSTR
SHGetFolderPathAndSubDirW proto  :HWND, :DWORD, :HANDLE, :DWORD, :LPWSTR, :LPWSTR
ifdef UNICODE
SHGetFolderPathAndSubDir	EQU	<SHGetFolderPathAndSubDirW>
else 
SHGetFolderPathAndSubDir	EQU	<SHGetFolderPathAndSubDirA>
endif 
endif 
endif 
proto_BFFCALLBACK typedef proto WINSTDCALLCONV :HWND,:DWORD,:LPARAM,:LPARAM
BFFCALLBACK typedef ptr proto_BFFCALLBACK
	include pshpack8.inc
BROWSEINFOA	struct
hwndOwner	HWND	?
pidlRoot	LPCITEMIDLIST	?
pszDisplayName	LPSTR	?
lpszTitle	LPSTR	?
ulFlags	DWORD	?
lpfn	BFFCALLBACK	?
lParam	LPARAM	?
iImage	DWORD	?
BROWSEINFOA	ends

PBROWSEINFOA typedef ptr BROWSEINFOA
LPBROWSEINFOA typedef ptr BROWSEINFOA

BROWSEINFOW	struct
hwndOwner	HWND	?
pidlRoot	LPCITEMIDLIST	?
pszDisplayName	LPWSTR	?
lpszTitle	LPWSTR	?
ulFlags	DWORD	?
lpfn	BFFCALLBACK	?
lParam	LPARAM	?
iImage	DWORD	?
BROWSEINFOW	ends

PBROWSEINFOW typedef ptr BROWSEINFOW
LPBROWSEINFOW typedef ptr BROWSEINFOW

	include poppack.inc
ifdef UNICODE
BROWSEINFO	EQU	<BROWSEINFOW>
PBROWSEINFO	EQU	<PBROWSEINFOW>
LPBROWSEINFO	EQU	<LPBROWSEINFOW>
else 
BROWSEINFO	EQU	<BROWSEINFOA>
PBROWSEINFO	EQU	<PBROWSEINFOA>
LPBROWSEINFO	EQU	<LPBROWSEINFOA>
endif 
BIF_RETURNONLYFSDIRS	EQU	0001h
BIF_DONTGOBELOWDOMAIN	EQU	0002h
BIF_STATUSTEXT	EQU	0004h
BIF_RETURNFSANCESTORS	EQU	0008h
BIF_EDITBOX	EQU	0010h
BIF_VALIDATE	EQU	0020h
BIF_NEWDIALOGSTYLE	EQU	0040h
BIF_USENEWUI	EQU	<( BIF_NEWDIALOGSTYLE  or  BIF_EDITBOX )>
BIF_BROWSEINCLUDEURLS	EQU	0080h
BIF_UAHINT	EQU	0100h
BIF_NONEWFOLDERBUTTON	EQU	0200h
BIF_NOTRANSLATETARGETS	EQU	0400h
BIF_BROWSEFORCOMPUTER	EQU	1000h
BIF_BROWSEFORPRINTER	EQU	2000h
BIF_BROWSEINCLUDEFILES	EQU	4000h
BIF_SHAREABLE	EQU	8000h
BFFM_INITIALIZED	EQU	1
BFFM_SELCHANGED	EQU	2
BFFM_VALIDATEFAILEDA	EQU	3
BFFM_VALIDATEFAILEDW	EQU	4
BFFM_IUNKNOWN	EQU	5
BFFM_SETSTATUSTEXTA	EQU	<( WM_USER + 100 )>
BFFM_ENABLEOK	EQU	<( WM_USER + 101 )>
BFFM_SETSELECTIONA	EQU	<( WM_USER + 102 )>
BFFM_SETSELECTIONW	EQU	<( WM_USER + 103 )>
BFFM_SETSTATUSTEXTW	EQU	<( WM_USER + 104 )>
BFFM_SETOKTEXT	EQU	<( WM_USER + 105 )>
BFFM_SETEXPANDED	EQU	<( WM_USER + 106 )>
proto_SHBrowseForFolderA typedef proto WINSTDCALLCONV  :LPBROWSEINFOA
externdef stdcall _imp__SHBrowseForFolderA@4: ptr proto_SHBrowseForFolderA
SHBrowseForFolderA equ <_imp__SHBrowseForFolderA@4>
proto_SHBrowseForFolderW typedef proto WINSTDCALLCONV  :LPBROWSEINFOW
externdef stdcall _imp__SHBrowseForFolderW@4: ptr proto_SHBrowseForFolderW
SHBrowseForFolderW equ <_imp__SHBrowseForFolderW@4>
ifdef UNICODE
SHBrowseForFolder	EQU	<SHBrowseForFolderW>
BFFM_SETSTATUSTEXT	EQU	<BFFM_SETSTATUSTEXTW>
BFFM_SETSELECTION	EQU	<BFFM_SETSELECTIONW>
BFFM_VALIDATEFAILED	EQU	<BFFM_VALIDATEFAILEDW>
else 
SHBrowseForFolder	EQU	<SHBrowseForFolderA>
BFFM_SETSTATUSTEXT	EQU	<BFFM_SETSTATUSTEXTA>
BFFM_SETSELECTION	EQU	<BFFM_SETSELECTIONA>
BFFM_VALIDATEFAILED	EQU	<BFFM_VALIDATEFAILEDA>
endif 
proto_SHLoadInProc typedef proto WINSTDCALLCONV  :REFCLSID
externdef stdcall _imp__SHLoadInProc@4: ptr proto_SHLoadInProc
SHLoadInProc equ <_imp__SHLoadInProc@4>
if _WIN32_IE ge 0600h
proto_SHEnableServiceObject typedef proto WINSTDCALLCONV  :REFCLSID, :BOOL
externdef stdcall _imp__SHEnableServiceObject@8: ptr proto_SHEnableServiceObject
SHEnableServiceObject equ <_imp__SHEnableServiceObject@8>
endif 
ISHCUTCMDID_DOWNLOADICON = 0 
ISHCUTCMDID_INTSHORTCUTCREATE = 1 

CMDID_INTSHORTCUTCREATE	EQU	<ISHCUTCMDID_INTSHORTCUTCREATE>

if 0
proto_SHGetDesktopFolder typedef proto WINSTDCALLCONV  :ptr ptr IShellFolder
externdef stdcall _imp__SHGetDesktopFolder@4: ptr proto_SHGetDesktopFolder
SHGetDesktopFolder equ <_imp__SHGetDesktopFolder@4>
else
@DefProto WINSHELLAPI, SHGetDesktopFolder, WINSTDCALLCONV , ,< :ptr ptr IShellFolder >, 4
endif

IShellFolderViewCBVtbl	struct 
BEGIN_INTERFACE
??Interface equ <IShellFolderViewCBVtbl>
STDMETHOD  QueryInterface , :REFIID, :ptr ptr 
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  MessageSFVCB , :DWORD, :WPARAM, :LPARAM
??Interface equ <>
IShellFolderViewCBVtbl	ends

IShellFolderViewCB	struct 
lpVtbl LPVOID ?
IShellFolderViewCB	ends

LPSHELLFOLDERVIEWCB typedef ptr IShellFolderViewCB

SFV_CREATE	struct 
cbSize	DWORD	?
pshf	LPSHELLFOLDER	?
psvOuter	LPSHELLVIEW	?
psfvcb	LPSHELLFOLDERVIEWCB	?
SFV_CREATE	ends

@DefProto WINSHELLAPI, SHCreateShellFolderView, WINSTDCALLCONV , , < :ptr SFV_CREATE, :ptr ptr IShellView >, 8

STR_FILE_SYS_BIND_DATA	EQU	<L("File System Bind Data")>
;#undef INTERFACE 
INTERFACE	EQU	<IFileSystemBindData>
DECLARE_INTERFACE_( IFileSystemBindData , IUnknown)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr ptr 
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  SetFindData , :ptr WIN32_FIND_DATAW
STDMETHOD  GetFindData , :ptr WIN32_FIND_DATAW
;}
DECLARE_INTERFACE__END

;#undef INTERFACE 
INTERFACE	EQU	<IShellDetails>
DECLARE_INTERFACE_( IShellDetails , IUnknown)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr ptr 
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  GetDetailsOf , :LPCITEMIDLIST, :DWORD, :ptr SHELLDETAILS
STDMETHOD  ColumnClick , :DWORD
;}
DECLARE_INTERFACE__END

;#undef INTERFACE 
INTERFACE	EQU	<IObjMgr>
DECLARE_INTERFACE_( IObjMgr , IUnknown)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr ptr 
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  Append , :ptr IUnknown
STDMETHOD  Remove , :ptr IUnknown
;}
DECLARE_INTERFACE__END

;#undef INTERFACE 
INTERFACE	EQU	<ICurrentWorkingDirectory>
DECLARE_INTERFACE_( ICurrentWorkingDirectory , IUnknown)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr ptr 
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  GetDirectory , :LPWSTR, :DWORD
STDMETHOD  SetDirectory , :LPWSTR
;}
DECLARE_INTERFACE__END

;#undef INTERFACE 
INTERFACE	EQU	<IACList>
DECLARE_INTERFACE_( IACList , IUnknown)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr ptr 
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  Expand , :LPCOLESTR
;}
DECLARE_INTERFACE__END

;#undef INTERFACE 
INTERFACE	EQU	<IACList2>
AUTOCOMPLETELISTOPTIONS typedef DWORD
ACLO_NONE = 0 
ACLO_CURRENTDIR = 1 
ACLO_MYCOMPUTER = 2 
ACLO_DESKTOP = 4 
ACLO_FAVORITES = 8 
ACLO_FILESYSONLY = 16 
ACLO_FILESYSDIRS = 32 

DECLARE_INTERFACE_( IACList2 , IACList)
;{
STDMETHOD  SetOptions , :DWORD
STDMETHOD  GetOptions , :ptr DWORD
;}
DECLARE_INTERFACE__END

PROGDLG_NORMAL	EQU	00000000h
PROGDLG_MODAL	EQU	00000001h
PROGDLG_AUTOTIME	EQU	00000002h
PROGDLG_NOTIME	EQU	00000004h
PROGDLG_NOMINIMIZE	EQU	00000008h
PROGDLG_NOPROGRESSBAR	EQU	00000010h
PDTIMER_RESET	EQU	00000001h
;#undef INTERFACE 
INTERFACE	EQU	<IProgressDialog>
DECLARE_INTERFACE_( IProgressDialog , IUnknown)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr ptr 
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  StartProgressDialog , :HWND, :ptr IUnknown, :DWORD, :LPCVOID
STDMETHOD  StopProgressDialog 
STDMETHOD  SetTitle , :LPWSTR
STDMETHOD  SetAnimation , :HINSTANCE, :DWORD
STDMETHOD_  BOOL , HasUserCancelled 
STDMETHOD  SetProgress , :DWORD, :DWORD
STDMETHOD  SetProgress64 , :QWORD, :QWORD
STDMETHOD  SetLine , :DWORD, :LPWSTR, :BOOL, :LPCVOID
STDMETHOD  SetCancelMsg , :LPWSTR, :LPCVOID
STDMETHOD  Timer , :DWORD, :LPCVOID
;}
DECLARE_INTERFACE__END

;#undef INTERFACE 
INTERFACE	EQU	<IInputObjectSite>
DECLARE_INTERFACE_( IInputObjectSite , IUnknown)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr ptr 
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  OnFocusChangeIS , :ptr IUnknown, :BOOL
;}
DECLARE_INTERFACE__END

;#undef INTERFACE 
INTERFACE	EQU	<IInputObject>
DECLARE_INTERFACE_( IInputObject , IUnknown)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr ptr 
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  UIActivateIO , :BOOL, :LPMSG
STDMETHOD  HasFocusIO 
STDMETHOD  TranslateAcceleratorIO , :LPMSG
;}
DECLARE_INTERFACE__END

;#undef INTERFACE 
INTERFACE	EQU	<IDockingWindowSite>
DECLARE_INTERFACE_( IDockingWindowSite , IOleWindow)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr ptr 
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  GetWindow , :ptr HWND
STDMETHOD  ContextSensitiveHelp , :BOOL
STDMETHOD  GetBorderDW , :ptr IUnknown, :LPRECT
STDMETHOD  RequestBorderSpaceDW , :ptr IUnknown, :LPCBORDERWIDTHS
STDMETHOD  SetBorderSpaceDW , :ptr IUnknown, :LPCBORDERWIDTHS
;}
DECLARE_INTERFACE__END

DWFRF_NORMAL	EQU	0000h
DWFRF_DELETECONFIGDATA	EQU	0001h
DWFAF_HIDDEN	EQU	0001h
;#undef INTERFACE 
INTERFACE	EQU	<IDockingWindowFrame>
DECLARE_INTERFACE_( IDockingWindowFrame , IOleWindow)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr ptr 
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  GetWindow , :ptr HWND
STDMETHOD  ContextSensitiveHelp , :BOOL
STDMETHOD  AddToolbar , :ptr IUnknown, :LPWSTR, :DWORD
STDMETHOD  RemoveToolbar , :ptr IUnknown, :DWORD
STDMETHOD  FindToolbar , :LPWSTR, :REFIID, :ptr ptr 
;}
DECLARE_INTERFACE__END

if (_WIN32_IE ge 0400h)
IRTIR_TASK_NOT_RUNNING	EQU	0
IRTIR_TASK_RUNNING	EQU	1
IRTIR_TASK_SUSPENDED	EQU	2
IRTIR_TASK_PENDING	EQU	3
IRTIR_TASK_FINISHED	EQU	4
;#undef INTERFACE 
INTERFACE	EQU	<IRunnableTask>
DECLARE_INTERFACE_( IRunnableTask , IUnknown)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr ptr 
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  Run 
STDMETHOD  Kill , :BOOL
STDMETHOD  Suspend 
STDMETHOD  Resume 
STDMETHOD_  ULONG , IsRunning 
;}
DECLARE_INTERFACE__END

LPRUNNABLETASK typedef ptr IRunnableTask
endif 
if (_WIN32_IE ge 0400h)
;#undef INTERFACE 
INTERFACE	EQU	<IThumbnailCapture>
DECLARE_INTERFACE_( IThumbnailCapture , IUnknown)
;{
STDMETHOD  CaptureThumbnail , :ptr SIZE_, :ptr IUnknown, :ptr HBITMAP
;}
DECLARE_INTERFACE__END

LPTHUMBNAILCAPTURE typedef ptr IThumbnailCapture
endif 
if (_WIN32_IE ge 400h)
ifdef _WININET_
WALLPAPEROPT	struct
dwSize	DWORD	?
dwStyle	DWORD	?
WALLPAPEROPT	ends

LPWALLPAPEROPT typedef ptr WALLPAPEROPT
LPCWALLPAPEROPT typedef ptr WALLPAPEROPT
COMPONENTSOPT	struct
dwSize	DWORD	?
fEnableComponents	BOOL	?
fActiveDesktop	BOOL	?
COMPONENTSOPT	ends

LPCOMPONENTSOPT typedef ptr COMPONENTSOPT
LPCCOMPONENTSOPT typedef ptr COMPONENTSOPT
COMPPOS	struct
dwSize	DWORD	?
iLeft	DWORD	?
iTop	DWORD	?
dwWidth	DWORD	?
dwHeight	DWORD	?
izIndex	DWORD	?
fCanResize	BOOL	?
fCanResizeX	BOOL	?
fCanResizeY	BOOL	?
iPreferredLeftPercent	DWORD	?
iPreferredTopPercent	DWORD	?
COMPPOS	ends

LPCOMPPOS typedef ptr COMPPOS
LPCCOMPPOS typedef ptr COMPPOS
COMPSTATEINFO	struct
dwSize	DWORD	?
iLeft	DWORD	?
iTop	DWORD	?
dwWidth	DWORD	?
dwHeight	DWORD	?
dwItemState	DWORD	?
COMPSTATEINFO	ends

LPCOMPSTATEINFO typedef ptr COMPSTATEINFO
LPCCOMPSTATEINFO typedef ptr COMPSTATEINFO
COMPONENT_TOP	EQU	3fffffffh
COMP_TYPE_HTMLDOC	EQU	0
COMP_TYPE_PICTURE	EQU	1
COMP_TYPE_WEBSITE	EQU	2
COMP_TYPE_CONTROL	EQU	3
COMP_TYPE_CFHTML	EQU	4
COMP_TYPE_MAX	EQU	4
IE4COMPONENT	struct
dwSize	DWORD	?
dwID	DWORD	?
iComponentType	DWORD	?
fChecked	BOOL	?
fDirty	BOOL	?
fNoScroll	BOOL	?
cpPos	COMPPOS	<>
wszFriendlyName	WCHAR MAX_PATH dup (?)
wszSource	WCHAR INTERNET_MAX_URL_LENGTH dup (?)
wszSubscribedURL	WCHAR INTERNET_MAX_URL_LENGTH dup (?)
IE4COMPONENT	ends

LPIE4COMPONENT typedef ptr IE4COMPONENT
LPCIE4COMPONENT typedef ptr IE4COMPONENT
COMPONENT	struct
dwSize	DWORD	?
dwID	DWORD	?
iComponentType	DWORD	?
fChecked	BOOL	?
fDirty	BOOL	?
fNoScroll	BOOL	?
cpPos	COMPPOS	<>
wszFriendlyName	WCHAR MAX_PATH dup (?)
wszSource	WCHAR INTERNET_MAX_URL_LENGTH dup (?)
wszSubscribedURL	WCHAR INTERNET_MAX_URL_LENGTH dup (?)
dwCurItemState	DWORD	?
csiOriginal	COMPSTATEINFO	<>
csiRestored	COMPSTATEINFO	<>
COMPONENT	ends

LPCOMPONENT typedef ptr COMPONENT
LPCCOMPONENT typedef ptr COMPONENT
IS_NORMAL	EQU	00000001h
IS_FULLSCREEN	EQU	00000002h
IS_SPLIT	EQU	00000004h
IS_VALIDSIZESTATEBITS	EQU	<( IS_NORMAL  or  IS_SPLIT  or  IS_FULLSCREEN )>
IS_VALIDSTATEBITS	EQU	<( IS_NORMAL  or  IS_SPLIT  or  IS_FULLSCREEN  or  80000000h  or  40000000h )>
AD_APPLY_SAVE	EQU	00000001h
AD_APPLY_HTMLGEN	EQU	00000002h
AD_APPLY_REFRESH	EQU	00000004h
AD_APPLY_ALL	EQU	<( AD_APPLY_SAVE  or  AD_APPLY_HTMLGEN  or  AD_APPLY_REFRESH )>
AD_APPLY_FORCE	EQU	00000008h
AD_APPLY_BUFFERED_REFRESH	EQU	00000010h
AD_APPLY_DYNAMICREFRESH	EQU	00000020h
WPSTYLE_CENTER	EQU	0
WPSTYLE_TILE	EQU	1
WPSTYLE_STRETCH	EQU	2
WPSTYLE_MAX	EQU	3
COMP_ELEM_TYPE	EQU	00000001h
COMP_ELEM_CHECKED	EQU	00000002h
COMP_ELEM_DIRTY	EQU	00000004h
COMP_ELEM_NOSCROLL	EQU	00000008h
COMP_ELEM_POS_LEFT	EQU	00000010h
COMP_ELEM_POS_TOP	EQU	00000020h
COMP_ELEM_SIZE_WIDTH	EQU	00000040h
COMP_ELEM_SIZE_HEIGHT	EQU	00000080h
COMP_ELEM_POS_ZINDEX	EQU	00000100h
COMP_ELEM_SOURCE	EQU	00000200h
COMP_ELEM_FRIENDLYNAME	EQU	00000400h
COMP_ELEM_SUBSCRIBEDURL	EQU	00000800h
COMP_ELEM_ORIGINAL_CSI	EQU	00001000h
COMP_ELEM_RESTORED_CSI	EQU	00002000h
COMP_ELEM_CURITEMSTATE	EQU	00004000h
COMP_ELEM_ALL	EQU	<( COMP_ELEM_TYPE  or  COMP_ELEM_CHECKED  or  COMP_ELEM_DIRTY  or  COMP_ELEM_NOSCROLL  or  COMP_ELEM_POS_LEFT  or  COMP_ELEM_SIZE_WIDTH  or  COMP_ELEM_SIZE_HEIGHT  or  COMP_ELEM_POS_ZINDEX  or  COMP_ELEM_SOURCE  or  COMP_ELEM_FRIENDLYNAME  or  COMP_ELEM_POS_TOP  or  COMP_ELEM_SUBSCRIBEDURL  or  COMP_ELEM_ORIGINAL_CSI  or  COMP_ELEM_RESTORED_CSI  or  COMP_ELEM_CURITEMSTATE )>
tagDTI_ADTIWUI typedef DWORD
DTI_ADDUI_DEFAULT = 00000000h 
DTI_ADDUI_DISPSUBWIZARD = 00000001h 
DTI_ADDUI_POSITIONITEM = 00000002h 

ADDURL_SILENT	EQU	0001h
COMPONENT_DEFAULT_LEFT	EQU	0FFFFh
COMPONENT_DEFAULT_TOP	EQU	0FFFFh
;#undef INTERFACE 
INTERFACE	EQU	<IActiveDesktop>
IActiveDesktop typedef tagDTI_ADTIWUI
riid typedef tagDTI_ADTIWUI
PURE typedef ptr ptr tagDTI_ADTIWUI

STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  ApplyChanges , :DWORD
STDMETHOD  GetWallpaper , :LPWSTR, :DWORD, :DWORD
STDMETHOD  SetWallpaper , :LPWSTR, :DWORD
STDMETHOD  GetWallpaperOptions , :LPWALLPAPEROPT, :DWORD
STDMETHOD  SetWallpaperOptions , :LPCWALLPAPEROPT, :DWORD
STDMETHOD  GetPattern , :LPWSTR, :DWORD, :DWORD
STDMETHOD  SetPattern , :LPWSTR, :DWORD
STDMETHOD  GetDesktopItemOptions , :LPCOMPONENTSOPT, :DWORD
STDMETHOD  SetDesktopItemOptions , :LPCCOMPONENTSOPT, :DWORD
STDMETHOD  AddDesktopItem , :LPCCOMPONENT, :DWORD
STDMETHOD  AddDesktopItemWithUI , :HWND, :LPCOMPONENT, :DWORD
STDMETHOD  ModifyDesktopItem , :LPCCOMPONENT, :DWORD
STDMETHOD  RemoveDesktopItem , :LPCCOMPONENT, :DWORD
STDMETHOD  GetDesktopItemCount , :LPINT, :DWORD
STDMETHOD  GetDesktopItem , :DWORD, :LPCOMPONENT, :DWORD
STDMETHOD  GetDesktopItemByID , :ULONG_PTR, :LPCOMPONENT, :DWORD
STDMETHOD  GenerateDesktopItemHtml , :LPWSTR, :LPCOMPONENT, :DWORD
STDMETHOD  AddUrl , :HWND, :LPWSTR, :LPCOMPONENT, :DWORD
STDMETHOD  GetDesktopItemBySource , :LPWSTR, :LPCOMPONENT, :DWORD
;}
LPACTIVEDESKTOP typedef ptr IActiveDesktop
endif 
if (_WIN32_IE ge 0500h)
MAX_COLUMN_NAME_LEN	EQU	80
MAX_COLUMN_DESC_LEN	EQU	128
	include pshpack1.inc
SHCOLUMNINFO	struct
scid	SHCOLUMNID	<>
vt	VARTYPE	?
fmt	DWORD	?
cChars	DWORD	?
csFlags	DWORD	?
wszTitle	WCHAR MAX_COLUMN_NAME_LEN dup (?)
wszDescription	WCHAR MAX_COLUMN_DESC_LEN dup (?)
SHCOLUMNINFO	ends

LPSHCOLUMNINFO typedef ptr SHCOLUMNINFO

LPCSHCOLUMNINFO typedef ptr SHCOLUMNINFO
	include poppack.inc
	include pshpack8.inc
SHCOLUMNINIT	struct
dwFlags	DWORD	?
dwReserved	DWORD	?
wszFolder	WCHAR MAX_PATH dup (?)
SHCOLUMNINIT	ends

LPSHCOLUMNINIT typedef ptr SHCOLUMNINIT

LPCSHCOLUMNINIT typedef ptr SHCOLUMNINIT
SHCDF_UPDATEITEM	EQU	00000001h
SHCOLUMNDATA	struct
dwFlags	DWORD	?
dwFileAttributes	DWORD	?
dwReserved	DWORD	?
pwszExt	DWORD	?
wszFile	WCHAR MAX_PATH dup (?)
SHCOLUMNDATA	ends

LPSHCOLUMNDATA typedef ptr SHCOLUMNDATA

LPCSHCOLUMNDATA typedef ptr SHCOLUMNDATA
	include poppack.inc
;#undef INTERFACE 
INTERFACE	EQU	<IColumnProvider>
DECLARE_INTERFACE_( IColumnProvider , IUnknown)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr ptr 
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  Initialize , :LPCSHCOLUMNINIT
STDMETHOD  GetColumnInfo , :DWORD, :ptr SHCOLUMNINFO
STDMETHOD  GetItemData , :LPCSHCOLUMNID, :LPCSHCOLUMNDATA, :ptr VARIANT
;}
DECLARE_INTERFACE__END

	include pshpack8.inc
SHDRAGIMAGE	struct
sizeDragImage	SIZE_	<>
ptOffset	POINT	<>
hbmpDragImage	HBITMAP	?
crColorKey	COLORREF	?
SHDRAGIMAGE	ends

LPSHDRAGIMAGE typedef ptr SHDRAGIMAGE

	include poppack.inc
DI_GETDRAGIMAGE	EQU	<TEXT ( "ShellGetDragImage" )>
;#undef INTERFACE 
INTERFACE	EQU	<IDropTargetHelper>
DECLARE_INTERFACE_( IDropTargetHelper , IUnknown)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr ptr 
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  DragEnter , :HWND, :ptr IDataObject, :ptr POINT, :DWORD
STDMETHOD  DragLeave 
STDMETHOD  DragOver , :ptr POINT, :DWORD
STDMETHOD  Drop , :ptr IDataObject, :ptr POINT, :DWORD
STDMETHOD  Show , :BOOL
;}
DECLARE_INTERFACE__END

;#undef INTERFACE 
INTERFACE	EQU	<IDragSourceHelper>
DECLARE_INTERFACE_( IDragSourceHelper , IUnknown)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr ptr 
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  InitializeFromBitmap , :LPSHDRAGIMAGE, :ptr IDataObject
STDMETHOD  InitializeFromWindow , :HWND, :ptr POINT, :ptr IDataObject
;}
DECLARE_INTERFACE__END

endif 
endif 
CFSTR_SHELLIDLIST	EQU	<TEXT ( "Shell IDList Array" )>
CFSTR_SHELLIDLISTOFFSET	EQU	<TEXT ( "Shell Object Offsets" )>
CFSTR_NETRESOURCES	EQU	<TEXT ( "Net Resource" )>
CFSTR_FILEDESCRIPTORA	EQU	<TEXT ( "FileGroupDescriptor" )>
CFSTR_FILEDESCRIPTORW	EQU	<TEXT ( "FileGroupDescriptorW" )>
CFSTR_FILECONTENTS	EQU	<TEXT ( "FileContents" )>
CFSTR_FILENAMEA	EQU	<TEXT ( "FileName" )>
CFSTR_FILENAMEW	EQU	<TEXT ( "FileNameW" )>
CFSTR_PRINTERGROUP	EQU	<TEXT ( "PrinterFriendlyName" )>
CFSTR_FILENAMEMAPA	EQU	<TEXT ( "FileNameMap" )>
CFSTR_FILENAMEMAPW	EQU	<TEXT ( "FileNameMapW" )>
CFSTR_SHELLURL	EQU	<TEXT ( "UniformResourceLocator" )>
CFSTR_INETURLA	EQU	<CFSTR_SHELLURL>
CFSTR_INETURLW	EQU	<TEXT ( "UniformResourceLocatorW" )>
CFSTR_PREFERREDDROPEFFECT	EQU	<TEXT ( "Preferred DropEffect" )>
CFSTR_PERFORMEDDROPEFFECT	EQU	<TEXT ( "Performed DropEffect" )>
CFSTR_PASTESUCCEEDED	EQU	<TEXT ( "Paste Succeeded" )>
CFSTR_INDRAGLOOP	EQU	<TEXT ( "InShellDragLoop" )>
CFSTR_DRAGCONTEXT	EQU	<TEXT ( "DragContext" )>
CFSTR_MOUNTEDVOLUME	EQU	<TEXT ( "MountedVolume" )>
CFSTR_PERSISTEDDATAOBJECT	EQU	<TEXT ( "PersistedDataObject" )>
CFSTR_TARGETCLSID	EQU	<TEXT ( "TargetCLSID" )>
CFSTR_LOGICALPERFORMEDDROPEFFECT	EQU	<TEXT ( "Logical Performed DropEffect" )>
CFSTR_AUTOPLAY_SHELLIDLISTS	EQU	<TEXT ( "Autoplay Enumerated IDList Array" )>
ifdef UNICODE
CFSTR_FILEDESCRIPTOR	EQU	<CFSTR_FILEDESCRIPTORW>
CFSTR_FILENAME	EQU	<CFSTR_FILENAMEW>
CFSTR_FILENAMEMAP	EQU	<CFSTR_FILENAMEMAPW>
CFSTR_INETURL	EQU	<CFSTR_INETURLW>
else 
CFSTR_FILEDESCRIPTOR	EQU	<CFSTR_FILEDESCRIPTORA>
CFSTR_FILENAME	EQU	<CFSTR_FILENAMEA>
CFSTR_FILENAMEMAP	EQU	<CFSTR_FILENAMEMAPA>
CFSTR_INETURL	EQU	<CFSTR_INETURLA>
endif 
DVASPECT_SHORTNAME	EQU	2
DVASPECT_COPY	EQU	3
DVASPECT_LINK	EQU	4
	include pshpack8.inc
NRESARRAY	struct
cItems	DWORD	?
nr	NETRESOURCE 1 dup (<>)
NRESARRAY	ends

LPNRESARRAY typedef ptr NRESARRAY

	include poppack.inc
CIDA	struct
cidl	DWORD	?
aoffset	DWORD 1 dup (?)
CIDA	ends

LPIDA typedef ptr CIDA

FD_FLAGS typedef DWORD
FD_CLSID = 0001h 
FD_SIZEPOINT = 0002h 
FD_ATTRIBUTES = 0004h 
FD_CREATETIME = 0008h 
FD_ACCESSTIME = 0010h 
FD_WRITESTIME = 0020h 
FD_FILESIZE = 0040h 
FD_PROGRESSUI = 4000h 
FD_LINKUI = 8000h 

FILEDESCRIPTORA	struct
dwFlags	DWORD	?
clsid	CLSID	<>
sizel	SIZEL	<>
pointl	POINTL	<>
dwFileAttributes	DWORD	?
ftCreationTime	FILETIME	<>
ftLastAccessTime	FILETIME	<>
ftLastWriteTime	FILETIME	<>
nFileSizeHigh	DWORD	?
nFileSizeLow	DWORD	?
cFileName	CHAR MAX_PATH dup (?)
FILEDESCRIPTORA	ends

LPFILEDESCRIPTORA typedef ptr FILEDESCRIPTORA

FILEDESCRIPTORW	struct
dwFlags	DWORD	?
clsid	CLSID	<>
sizel	SIZEL	<>
pointl	POINTL	<>
dwFileAttributes	DWORD	?
ftCreationTime	FILETIME	<>
ftLastAccessTime	FILETIME	<>
ftLastWriteTime	FILETIME	<>
nFileSizeHigh	DWORD	?
nFileSizeLow	DWORD	?
cFileName	WCHAR MAX_PATH dup (?)
FILEDESCRIPTORW	ends

LPFILEDESCRIPTORW typedef ptr FILEDESCRIPTORW

ifdef UNICODE
FILEDESCRIPTOR	EQU	<FILEDESCRIPTORW>
LPFILEDESCRIPTOR	EQU	<LPFILEDESCRIPTORW>
else 
FILEDESCRIPTOR	EQU	<FILEDESCRIPTORA>
LPFILEDESCRIPTOR	EQU	<LPFILEDESCRIPTORA>
endif 
FILEGROUPDESCRIPTORA	struct
cItems	DWORD	?
fgd	FILEDESCRIPTORA 1 dup (<>)
FILEGROUPDESCRIPTORA	ends

LPFILEGROUPDESCRIPTORA typedef ptr FILEGROUPDESCRIPTORA

FILEGROUPDESCRIPTORW	struct
cItems	DWORD	?
fgd	FILEDESCRIPTORW 1 dup (<>)
FILEGROUPDESCRIPTORW	ends

LPFILEGROUPDESCRIPTORW typedef ptr FILEGROUPDESCRIPTORW

ifdef UNICODE
FILEGROUPDESCRIPTOR	EQU	<FILEGROUPDESCRIPTORW>
LPFILEGROUPDESCRIPTOR	EQU	<LPFILEGROUPDESCRIPTORW>
else 
FILEGROUPDESCRIPTOR	EQU	<FILEGROUPDESCRIPTORA>
LPFILEGROUPDESCRIPTOR	EQU	<LPFILEGROUPDESCRIPTORA>
endif 
DROPFILES	struct
pFiles	DWORD	?
pt	POINT	<>
fNC	BOOL	?
fWide	BOOL	?
DROPFILES	ends

LPDROPFILES typedef ptr DROPFILES

SHCNE_RENAMEITEM	EQU	00000001h
SHCNE_CREATE	EQU	00000002h
SHCNE_DELETE	EQU	00000004h
SHCNE_MKDIR	EQU	00000008h
SHCNE_RMDIR	EQU	00000010h
SHCNE_MEDIAINSERTED	EQU	00000020h
SHCNE_MEDIAREMOVED	EQU	00000040h
SHCNE_DRIVEREMOVED	EQU	00000080h
SHCNE_DRIVEADD	EQU	00000100h
SHCNE_NETSHARE	EQU	00000200h
SHCNE_NETUNSHARE	EQU	00000400h
SHCNE_ATTRIBUTES	EQU	00000800h
SHCNE_UPDATEDIR	EQU	00001000h
SHCNE_UPDATEITEM	EQU	00002000h
SHCNE_SERVERDISCONNECT	EQU	00004000h
SHCNE_UPDATEIMAGE	EQU	00008000h
SHCNE_DRIVEADDGUI	EQU	00010000h
SHCNE_RENAMEFOLDER	EQU	00020000h
SHCNE_FREESPACE	EQU	00040000h
if (_WIN32_IE ge 0400h)
SHCNE_EXTENDED_EVENT	EQU	04000000h
endif 
SHCNE_ASSOCCHANGED	EQU	08000000h
SHCNE_DISKEVENTS	EQU	0002381Fh
SHCNE_GLOBALEVENTS	EQU	0C0581E0h
SHCNE_ALLEVENTS	EQU	7FFFFFFFh
SHCNE_INTERRUPT	EQU	80000000h
if (_WIN32_IE ge 0400h)
SHCNEE_ORDERCHANGED	EQU	2
SHCNEE_MSI_CHANGE	EQU	4
SHCNEE_MSI_UNINSTALL	EQU	5
endif 
SHCNF_IDLIST	EQU	0000h
SHCNF_PATHA	EQU	0001h
SHCNF_PRINTERA	EQU	0002h
SHCNF_DWORD	EQU	0003h
SHCNF_PATHW	EQU	0005h
SHCNF_PRINTERW	EQU	0006h
SHCNF_TYPE	EQU	00FFh
SHCNF_FLUSH	EQU	1000h
SHCNF_FLUSHNOWAIT	EQU	2000h
ifdef UNICODE
SHCNF_PATH	EQU	<SHCNF_PATHW>
SHCNF_PRINTER	EQU	<SHCNF_PRINTERW>
else 
SHCNF_PATH	EQU	<SHCNF_PATHA>
SHCNF_PRINTER	EQU	<SHCNF_PRINTERA>
endif 
proto_SHChangeNotify typedef proto WINSTDCALLCONV  :SDWORD, :DWORD, :LPCVOID, :LPCVOID
externdef stdcall _imp__SHChangeNotify@16: ptr proto_SHChangeNotify
SHChangeNotify equ <_imp__SHChangeNotify@16>
;#undef INTERFACE 
INTERFACE	EQU	<IShellChangeNotify>
DECLARE_INTERFACE_( IShellChangeNotify , IUnknown)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr ptr 
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  OnChange , :SDWORD, :LPCITEMIDLIST, :LPCITEMIDLIST
;}
DECLARE_INTERFACE__END

;#undef INTERFACE 
INTERFACE	EQU	<IQueryInfo>
DECLARE_INTERFACE_( IQueryInfo , IUnknown)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr ptr 
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  GetInfoTip , :DWORD, :ptr ptr WCHAR
STDMETHOD  GetInfoFlags , :ptr DWORD
;}
DECLARE_INTERFACE__END

QITIPF_DEFAULT	EQU	00000000h
QITIPF_USENAME	EQU	00000001h
QITIPF_LINKNOTARGET	EQU	00000002h
QITIPF_LINKUSETARGET	EQU	00000004h
QITIPF_USESLOWTIP	EQU	00000008h
QIF_CACHED	EQU	00000001h
QIF_DONTEXPANDFOLDER	EQU	00000002h
SHARD_PIDL	EQU	00000001h
SHARD_PATHA	EQU	00000002h
SHARD_PATHW	EQU	00000003h
ifdef UNICODE
SHARD_PATH	EQU	<SHARD_PATHW>
else 
SHARD_PATH	EQU	<SHARD_PATHA>
endif 
proto_SHAddToRecentDocs typedef proto WINSTDCALLCONV  :DWORD, :LPCVOID
externdef stdcall _imp__SHAddToRecentDocs@8: ptr proto_SHAddToRecentDocs
SHAddToRecentDocs equ <_imp__SHAddToRecentDocs@8>
if (_WIN32_IE ge 0400h)
SHChangeProductKeyAsIDList	struct
cb	WORD	?
wszProductKey	WCHAR 39 dup (?)
cbZero	WORD	?
SHChangeProductKeyAsIDList	ends

LPSHChangeProductKeyAsIDList typedef ptr SHChangeProductKeyAsIDList

proto_SHUpdateImageA typedef proto WINSTDCALLCONV  :LPSTR, :DWORD, :DWORD, :DWORD
externdef stdcall _imp__SHUpdateImageA@16: ptr proto_SHUpdateImageA
SHUpdateImageA equ <_imp__SHUpdateImageA@16>
proto_SHUpdateImageW typedef proto WINSTDCALLCONV  :LPWSTR, :DWORD, :DWORD, :DWORD
externdef stdcall _imp__SHUpdateImageW@16: ptr proto_SHUpdateImageW
SHUpdateImageW equ <_imp__SHUpdateImageW@16>
ifdef UNICODE
SHUpdateImage	EQU	<SHUpdateImageW>
else 
SHUpdateImage	EQU	<SHUpdateImageA>
endif 
endif 
proto_SHGetInstanceExplorer typedef proto WINSTDCALLCONV  :ptr ptr IUnknown
externdef stdcall _imp__SHGetInstanceExplorer@4: ptr proto_SHGetInstanceExplorer
SHGetInstanceExplorer equ <_imp__SHGetInstanceExplorer@4>
SHGDFIL_FINDDATA	EQU	1
SHGDFIL_NETRESOURCE	EQU	2
SHGDFIL_DESCRIPTIONID	EQU	3
SHDID_ROOT_REGITEM	EQU	1
SHDID_FS_FILE	EQU	2
SHDID_FS_DIRECTORY	EQU	3
SHDID_FS_OTHER	EQU	4
SHDID_COMPUTER_DRIVE35	EQU	5
SHDID_COMPUTER_DRIVE525	EQU	6
SHDID_COMPUTER_REMOVABLE	EQU	7
SHDID_COMPUTER_FIXED	EQU	8
SHDID_COMPUTER_NETDRIVE	EQU	9
SHDID_COMPUTER_CDROM	EQU	10
SHDID_COMPUTER_RAMDISK	EQU	11
SHDID_COMPUTER_OTHER	EQU	12
SHDID_NET_DOMAIN	EQU	13
SHDID_NET_SERVER	EQU	14
SHDID_NET_SHARE	EQU	15
SHDID_NET_RESTOFNET	EQU	16
SHDID_NET_OTHER	EQU	17
SHDID_COMPUTER_IMAGING	EQU	18
SHDID_COMPUTER_AUDIO	EQU	19
SHDID_COMPUTER_SHAREDDOCS	EQU	20
	include pshpack8.inc
SHDESCRIPTIONID	struct
dwDescriptionId	DWORD	?
clsid	CLSID	<>
SHDESCRIPTIONID	ends

LPSHDESCRIPTIONID typedef ptr SHDESCRIPTIONID

	include poppack.inc
proto_SHGetDataFromIDListA typedef proto WINSTDCALLCONV  :ptr IShellFolder, :LPCITEMIDLIST, :DWORD, :ptr , :DWORD
externdef stdcall _imp__SHGetDataFromIDListA@20: ptr proto_SHGetDataFromIDListA
SHGetDataFromIDListA equ <_imp__SHGetDataFromIDListA@20>
proto_SHGetDataFromIDListW typedef proto WINSTDCALLCONV  :ptr IShellFolder, :LPCITEMIDLIST, :DWORD, :ptr , :DWORD
externdef stdcall _imp__SHGetDataFromIDListW@20: ptr proto_SHGetDataFromIDListW
SHGetDataFromIDListW equ <_imp__SHGetDataFromIDListW@20>
ifdef UNICODE
SHGetDataFromIDList	EQU	<SHGetDataFromIDListW>
else 
SHGetDataFromIDList	EQU	<SHGetDataFromIDListA>
endif 
PID_IS_URL	EQU	2
PID_IS_NAME	EQU	4
PID_IS_WORKINGDIR	EQU	5
PID_IS_HOTKEY	EQU	6
PID_IS_SHOWCMD	EQU	7
PID_IS_ICONINDEX	EQU	8
PID_IS_ICONFILE	EQU	9
PID_IS_WHATSNEW	EQU	10
PID_IS_AUTHOR	EQU	11
PID_IS_DESCRIPTION	EQU	12
PID_IS_COMMENT	EQU	13
PID_INTSITE_WHATSNEW	EQU	2
PID_INTSITE_AUTHOR	EQU	3
PID_INTSITE_LASTVISIT	EQU	4
PID_INTSITE_LASTMOD	EQU	5
PID_INTSITE_VISITCOUNT	EQU	6
PID_INTSITE_DESCRIPTION	EQU	7
PID_INTSITE_COMMENT	EQU	8
PID_INTSITE_FLAGS	EQU	9
PID_INTSITE_CONTENTLEN	EQU	10
PID_INTSITE_CONTENTCODE	EQU	11
PID_INTSITE_RECURSE	EQU	12
PID_INTSITE_WATCH	EQU	13
PID_INTSITE_SUBSCRIPTION	EQU	14
PID_INTSITE_URL	EQU	15
PID_INTSITE_TITLE	EQU	16
PID_INTSITE_CODEPAGE	EQU	18
PID_INTSITE_TRACKING	EQU	19
PID_INTSITE_ICONINDEX	EQU	20
PID_INTSITE_ICONFILE	EQU	21
PIDISF_RECENTLYCHANGED	EQU	00000001h
PIDISF_CACHEDSTICKY	EQU	00000002h
PIDISF_CACHEIMAGES	EQU	00000010h
PIDISF_FOLLOWALLLINKS	EQU	00000020h
PIDISM_GLOBAL	EQU	0
PIDISM_WATCH	EQU	1
PIDISM_DONTWATCH	EQU	2

SHELLFLAGSTATE	struct
SHELLFLAGSTATE_R0	RECORD fRestFlags:3,fHideIcons:1,fShowInfoTip:1,fMapNetDrvBtn:1,fShowAttribCol:1,fDontPrettyPath:1,fWin95Classic:1,fDesktopHTML:1,fDoubleClickInWebView:1,fShowCompColor:1,fShowSysFiles:1,fNoConfirmRecycle:1,fShowExtensions:1,fShowAllObjects:1
union
	BOOL	?
	SHELLFLAGSTATE_R0 <>
ends
SHELLFLAGSTATE	ends

LPSHELLFLAGSTATE typedef ptr SHELLFLAGSTATE

SSF_SHOWALLOBJECTS	EQU	00000001h
SSF_SHOWEXTENSIONS	EQU	00000002h
SSF_SHOWCOMPCOLOR	EQU	00000008h
SSF_SHOWSYSFILES	EQU	00000020h
SSF_DOUBLECLICKINWEBVIEW	EQU	00000080h
SSF_SHOWATTRIBCOL	EQU	00000100h
SSF_DESKTOPHTML	EQU	00000200h
SSF_WIN95CLASSIC	EQU	00000400h
SSF_DONTPRETTYPATH	EQU	00000800h
SSF_SHOWINFOTIP	EQU	00002000h
SSF_MAPNETDRVBUTTON	EQU	00001000h
SSF_NOCONFIRMRECYCLE	EQU	00008000h
SSF_HIDEICONS	EQU	00004000h

proto_SHGetSettings typedef proto WINSTDCALLCONV  :LPSHELLFLAGSTATE, :DWORD
externdef stdcall _imp__SHGetSettings@8: ptr proto_SHGetSettings
SHGetSettings equ <_imp__SHGetSettings@8>
proto_SHBindToParent typedef proto WINSTDCALLCONV  :LPCITEMIDLIST, :REFIID, :ptr ptr , :ptr LPCITEMIDLIST
externdef stdcall _imp__SHBindToParent@16: ptr proto_SHBindToParent
SHBindToParent equ <_imp__SHBindToParent@16>
proto_SHParseDisplayName typedef proto WINSTDCALLCONV  :PCWSTR, :ptr IBindCtx, :ptr LPITEMIDLIST, :SFGAOF, :ptr SFGAOF
externdef stdcall _imp__SHParseDisplayName@20: ptr proto_SHParseDisplayName
SHParseDisplayName equ <_imp__SHParseDisplayName@20>

SHPPFW_NONE	EQU	00000000h
SHPPFW_DEFAULT	EQU	<SHPPFW_DIRCREATE>
SHPPFW_DIRCREATE	EQU	00000001h
SHPPFW_ASKDIRCREATE	EQU	00000002h
SHPPFW_IGNOREFILENAME	EQU	00000004h
SHPPFW_NOWRITECHECK	EQU	00000008h
SHPPFW_MEDIACHECKONLY	EQU	00000010h

proto_SHPathPrepareForWriteA typedef proto WINSTDCALLCONV  :HWND, :ptr IUnknown, :LPSTR, :DWORD
externdef stdcall _imp__SHPathPrepareForWriteA@16: ptr proto_SHPathPrepareForWriteA
SHPathPrepareForWriteA equ <_imp__SHPathPrepareForWriteA@16>
proto_SHPathPrepareForWriteW typedef proto WINSTDCALLCONV  :HWND, :ptr IUnknown, :LPWSTR, :DWORD
externdef stdcall _imp__SHPathPrepareForWriteW@16: ptr proto_SHPathPrepareForWriteW
SHPathPrepareForWriteW equ <_imp__SHPathPrepareForWriteW@16>
ifdef UNICODE
SHPathPrepareForWrite	EQU	<SHPathPrepareForWriteW>
else 
SHPathPrepareForWrite	EQU	<SHPathPrepareForWriteA>
endif 
;#undef INTERFACE 
INTERFACE	EQU	<INamedPropertyBag>
DECLARE_INTERFACE_( INamedPropertyBag , IUnknown)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr ptr 
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  ReadPropertyNPB , :LPCOLESTR, :LPCOLESTR, :ptr PROPVARIANT
STDMETHOD  WritePropertyNPB , :LPCOLESTR, :LPCOLESTR, :ptr PROPVARIANT
STDMETHOD  RemovePropertyNPB , :LPCOLESTR, :LPCOLESTR
;}
DECLARE_INTERFACE__END

ifdef __urlmon_h__
proto_SoftwareUpdateMessageBox typedef proto WINSTDCALLCONV  :HWND, :LPWSTR, :DWORD, :LPSOFTDISTINFO
externdef stdcall _imp__SoftwareUpdateMessageBox@16: ptr proto_SoftwareUpdateMessageBox
SoftwareUpdateMessageBox equ <_imp__SoftwareUpdateMessageBox@16>
endif 
ifdef __cplusplus
;}
endif 
	include poppack.inc
proto_ImportPrivacySettings typedef proto WINSTDCALLCONV  :LPWSTR, :ptr BOOL, :ptr BOOL
externdef stdcall _imp__ImportPrivacySettings@12: ptr proto_ImportPrivacySettings
ImportPrivacySettings equ <_imp__ImportPrivacySettings@12>
ifndef IEnumPrivacyRecords
;IEnumPrivacyRecords typedef IEnumPrivacyRecords

endif 
proto_DoPrivacyDlg typedef proto WINSTDCALLCONV  :HWND, :LPOLESTR, :ptr IEnumPrivacyRecords, :BOOL
externdef stdcall _imp__DoPrivacyDlg@16: ptr proto_DoPrivacyDlg
DoPrivacyDlg equ <_imp__DoPrivacyDlg@16>
endif 

;--- errors: 0
;--- end of file ---
